/**
 *  Copyright 24.07.2012 oliver.keusemann@googlemail.com
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package de.xelerity.geolessi.types.poi;

import java.util.Collections;
import de.xelerity.geolessi.srv.mixed.AbfahrtszeitComperator;

public class NextAbfahrtInfo {

	String LinienNr = "";
	long LinienType = 0L;
	String Richtung = "";
	NextAbfahrtsListe Abfahrten;
	String Gleis = "";

	public NextAbfahrtInfo() {
		Abfahrten = new NextAbfahrtsListe();
	}

	public NextAbfahrtsListe getAbfahrten() {
		return Abfahrten;
	}

	public void setAbfahrten(NextAbfahrtsListe abfahrten) {
		Abfahrten = abfahrten == null ? new NextAbfahrtsListe() : abfahrten;
	}

	public String toString() {
		String ret = getLinienType() + ":" + getLinienNr() + ":" + getGleis() + ":" + getRichtung();
		if (Abfahrten != null && Abfahrten.size() > 0) {
			ret = ret + " [";
			for (Abfahrt S : Abfahrten) {
				ret = ret + S + ", ";
			}
			ret = ret.replaceAll("\\s*,\\s*$", "") + "]";
		}
		return ret;
	}

	public String getRichtung() {
		return Richtung;
	}

	public void setRichtung(String richtung) {
		Richtung = richtung;
	}

	public void sort(long pCurrentTime) {
		Collections.sort(Abfahrten.getAbfahrten(), new AbfahrtszeitComperator(pCurrentTime));
	}

	public String getLinienNr() {
		return LinienNr;
	}

	public void setLinienNr(String linienNr) {
		LinienNr = linienNr;
	}

	public long getLinienType() {
		return LinienType;
	}

	public void setLinienType(long linienType) {
		LinienType = linienType;
	}

	public String getGleis() {
		return Gleis == null ? "" : Gleis.trim();
	}

	public void setGleis(String gleis) {
		Gleis = gleis;
	}

}